#include <LiquidCrystal_I2C.h> // LCD1602屏幕驱动库
#include <DHT.h>//dht11温湿度传感器库

LiquidCrystal_I2C lcd(0x27, 16, 2); //设置LCD1602设备地址0x27，16列2行

#define DHTPIN 8 // 设置 DHT 引脚 为 Pin 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);


void setup() {
  lcd.init(); // 初始化lcd
  lcd.backlight(); // 打开lcd背光
  dht.begin(); // 初始化传感器
}

void loop() {
  delay(2000); // 关键：增加2秒延迟，避免DHT11响应不及时导致数据错误
  float hum = dht.readHumidity(); // 读湿度
  float temp = dht.readTemperature(); // 读温度
  if (isnan(hum) || isnan(temp)) {
    lcd.setCursor(0, 1);
    lcd.print("Read Error!    ");
    return;
  }
  lcd.setCursor(0, 0);
  lcd.print("Temp: "); 
  lcd.print(temp, 1); 
  lcd.print("C   ");
  
  lcd.setCursor(0, 1);
  lcd.print("Hum: "); 
  lcd.print(hum, 1); 
  lcd.print("%RH");
}